home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / systems / mac / euro-oztex / EOT2.1#3.sea.bin / TeX-inputs / STY / tabularx.sty < prev    next >
Text File  |  1995-01-04  |  5KB  |  170 lines

  1. %% 
  2. %% This is file `tabularx.sty', generated 
  3. %% on <1995/1/4> with the docstrip utility (2.2i).
  4. %% 
  5. %% The original source files were:
  6. %% 
  7. %% tabularx.dtx  (with options: `package')
  8. %% 
  9. %% IMPORTANT NOTICE: 
  10. %% This file is part of the `tools' bundle 
  11. %% in the LaTeX2e distribution. 
  12. %% 
  13. %% You are not allowed to distribute this file. 
  14. %% For distribution of the original source see 
  15. %% the copyright notice in the source file, and 
  16. %% in the file readme.txt distributed with the 
  17. %% tools bundle. 
  18. %% 
  19. %% File: tabularx.dtx Copyright (C) 1991-1994 David Carlisle
  20. \NeedsTeXFormat{LaTeX2e}
  21. \ProvidesPackage{tabularx}
  22.          [1994/05/22 v2.01 `tabularx' package (DPC)]
  23. \DeclareOption{infoshow}{\AtEndOfPackage\tracingtabularx}
  24. \DeclareOption{debugshow}{\AtEndOfPackage\tracingtabularx}
  25. \ProcessOptions
  26. \RequirePackage{array}[1994/02/03]
  27. \newdimen\TX@col@width
  28. \newdimen\TX@old@table
  29. \newdimen\TX@old@col
  30. \newdimen\TX@target
  31. \newdimen\TX@delta
  32. \newcount\TX@cols
  33. \newif\ifTX@
  34. \def\tabularx#1{%
  35.   {\ifnum0=`}\fi
  36.   \TX@target#1\relax
  37.   \TX@typeout{Target width: #1 = \the\TX@target.}%
  38.   \toks@{}\TX@get@body}
  39. \long\def\TX@get@body#1\end
  40.   {\toks@\expandafter{\the\toks@#1}\TX@find@end}
  41. \def\TX@find@end#1{%
  42.   \def\@tempa{#1}%
  43.   \ifx\@tempa\TX@\expandafter\TX@endtabularx
  44.   \else\toks@\expandafter
  45.     {\the\toks@\end{#1}}\expandafter\TX@get@body\fi}
  46. \def\TX@{tabularx}
  47. \def\TX@endtabularx{%
  48.   \expandafter\TX@newcol\expandafter{\tabularxcolumn{\TX@col@width}}%
  49.   \let\verb\TX@verb
  50.   \def\@elt##1{\global\value{##1}\the\value{##1}\relax}%
  51.   \edef\TX@ckpt{\cl@@ckpt}%
  52.   \let\@elt\relax
  53.   \TX@old@table=\maxdimen
  54.   \TX@col@width=\TX@target
  55.   \global\TX@cols=\@ne
  56.   \TX@typeout@
  57.     {\@spaces Table Width\@spaces Column Width\@spaces X Columns}%
  58.   \TX@trial{\def\NC@rewrite@X{%
  59.           \global\advance\TX@cols\@ne\NC@find p{\TX@col@width}}}%
  60.   \loop
  61.     \TX@arith
  62.     \ifTX@
  63.     \TX@trial{}%
  64.   \repeat
  65.   {\let\@footnotetext\TX@ftntext\let\@xfootnotenext\TX@xftntext
  66.     \csname tabular*\expandafter\endcsname\expandafter\TX@target
  67.       \the\toks@
  68.     \csname endtabular*\endcsname}%
  69.   \global\TX@ftn\expandafter{\expandafter}\the\TX@ftn
  70.   \ifnum0=`{\fi}%
  71.   \end{tabularx}}
  72. \def\TX@arith{%
  73.   \TX@false
  74.   \ifdim\TX@old@table=\wd\@tempboxa
  75.     \TX@col@width=\TX@old@col
  76.     \TX@typeout@{Reached minimum width, backing up.}%
  77.   \else
  78.     \dimen@=\wd\@tempboxa
  79.     \advance\dimen@ -\TX@target
  80.     \ifdim\dimen@<\TX@delta
  81.       \TX@typeout@{Reached target.}%
  82.     \else
  83.       \ifnum\TX@cols>\@ne
  84.         \advance\TX@cols by \m@ne
  85.       \fi
  86.       \divide\dimen@ by \TX@cols
  87.       \advance\dimen@ by -\TX@col@width
  88.       \ifdim \dimen@ > \z@
  89.         \TX@typeout@{Columns too narrow.}%
  90.       \else
  91.         \TX@old@col=\TX@col@width
  92.         \TX@old@table=\wd\@tempboxa
  93.         \TX@col@width=-\dimen@
  94.         \TX@true
  95.       \fi
  96.     \fi
  97.   \fi}
  98. \TX@delta=\hfuzz
  99. \newcolumntype{X}{}
  100. \def\tabularxcolumn#1{p{#1}}
  101. \def\TX@newcol{\newcol@{X}[0]}
  102. \def\TX@trial#1{%
  103.   \setbox\@tempboxa=\hbox{%
  104.     #1\relax
  105.   \let\@footnotetext\TX@trial@ftn
  106.   \let\TX@vwarn\@empty
  107.    \expandafter\let\expandafter\tabularx\csname tabular*\endcsname
  108.    \expandafter\let\expandafter\endtabularx\csname endtabular*\endcsname
  109.    \let\immediate=\relax\def\write##1##{{\afterassignment}\toks@=}%
  110.     \hbadness=\@M\hfuzz=\maxdimen
  111.     \let\hbadness=\@tempcnta\let\hfuzz=\@tempdima
  112.     \expandafter\tabular\the\toks@
  113.     \endtabular}%
  114.   \TX@ckpt
  115.   \TX@typeout@{\@spaces
  116.      \expandafter\TX@align
  117.         \the\wd\@tempboxa\space\space\space\space\space\@@
  118.      \expandafter\TX@align
  119.         \the\TX@col@width\space\space\space\space\space\@@
  120.      \@spaces\the\TX@cols}}
  121. \def\TX@align#1.#2#3#4#5#6#7#8#9\@@{%
  122.   \ifnum#1<10 \space\fi
  123.   \ifnum#1<100 \space\fi
  124.   \ifnum#1<\@m\space\fi
  125.   \ifnum#1<\@M\space\fi
  126.   #1.#2#3#4#5#6#7#8\space\space}
  127. \def\arraybackslash{\let\\=\@arraycr}
  128. \def\tracingtabularx{%
  129.   \def\TX@typeout{\PackageWarningNoLine{tabularx}}%
  130.   \def\TX@typeout@##1{\typeout{(tabularx) ##1}}}
  131. \let\TX@typeout\@gobble
  132. \let\TX@typeout@\@gobble
  133. \newtoks\TX@ftn
  134. \long\def\TX@ftntext#1{%
  135.   \edef\@tempa{\the\TX@ftn\noexpand\footnotetext
  136.                     [\the\csname c@\@mpfn\endcsname]}%
  137.   \global\TX@ftn\expandafter{\@tempa{#1}}}%
  138. \long\def\TX@xftntext[#1]#2{%
  139.   \global\TX@ftn\expandafter{\the\TX@ftn\footnotetext[#1]{#2}}}
  140. \long\def\TX@trial@ftn#1{}
  141. {\uccode`\*=`\ %
  142. \uppercase{\gdef\TX@verb{%
  143.   \leavevmode\null\TX@vwarn
  144.   {\ifnum0=`}\fi\ttfamily\let\\\ignorespaces
  145.   \@ifstar{\let~*\TX@vb}{\TX@vb}}}}
  146. \def\TX@vb#1{\def\@tempa##1#1{\toks@{##1}\edef\@tempa{\the\toks@}%
  147.     \expandafter\TX@v\meaning\@tempa\\ \\\ifnum0=`{\fi}}\@tempa!}
  148. \def\TX@v#1!{\afterassignment\TX@vfirst\let\@tempa= }
  149. \begingroup
  150. \catcode`\*=\catcode`\#
  151. \catcode`\#=12
  152. \gdef\TX@vfirst{%
  153.   \if\@tempa#%
  154.     \def\@tempb{\TX@v@#}%
  155.   \else
  156.     \let\@tempb\TX@v@
  157.     \if\@tempa\space~\else\@tempa\fi
  158.   \fi
  159.   \@tempb}
  160. \gdef\TX@v@*1 *2{%
  161.   \TX@v@hash*1##\relax\if*2\\\else~\expandafter\TX@v@\fi*2}
  162. \gdef\TX@v@hash*1##*2{*1\ifx*2\relax\else#\expandafter\TX@v@hash\fi*2}
  163. \endgroup
  164. \def\TX@vwarn{%
  165.   \@warning{\noexpand\verb may be unreliable inside tabularx}%
  166.   \global\let\TX@vwarn\@empty}
  167. \endinput
  168. %% 
  169. %% End of file `tabularx.sty'.
  170.